1. Field of the Invention
The present invention relates to a data decoding device, a data decoding method, a semiconductor integrated circuit and a data decoding system for decoding data compressed and coded according to a DVD standard.
2. Description of the Related Art
Recently, a DVD attracts an attention as a storage medium. In such a DVD, a bit stream compressed and coded according to a video standard is recorded. The video stream compressed and coded according to the video standard is called a video object (VOB).
FIG. 1 shows a data structure of one example of the VOB. VOB 1 can be separated into decoding units called cells 2. Further, the cell 2 can be separated into minimum units called video object units (VOBU) 3. The VOBU 3 always starts from a single navy pack (Nv_pck), and can include, subsequent to the navy pack, video packs (V_pct), audio pack (A_pack) and sub-picture packs (Sp_pck), as shown.
The navy pack is a pack for controlling, including reproduction information (PCI) and address information (DSI) on a disk for the video packs, audio packs and sub-picture packs. Each VOBU 3 absolutely includes one navy pack. The video packs, audio packs and sub-picture packs should not be absolutely included in each VOBU 3.
The term ‘pack’ means a collection of data having a data length of 2048 bytes, and includes a pack header and packets. Japanese Laid-open Patent Application No. 11-162119 discloses a method for reproducing VOB according to a DVD video standard.
FIG. 2 shows a configuration diagram of one example of a data decoding device for decoding VOB. Ordinarily, the data decoding device decodes VOB for each VOBU unit. The data decoding device shown in FIG. 2 generally includes a hardware 100 and a software 200. First, description is made for the hardware 100.
The VOB read out from a DVD disk 10 is stored in a track buffer (Trk_buff) 101 of the hardware 100. At this time, the VOB is managed for each VOBU unit with a separation therebetween. Subsequent to the track buffer 101, a demux (DEMUX) 102 for separating the VOBU into respective packs of the above-mentioned four types, i.e., the navy pack, video packs, audio packs and sub-picture packs is connected.
Subsequent to the demux 102, a video buffer (Video_buff) 103, an audio buffer (Audio_buff) 104, a sub-picture buffer (Sp_buff) 105 and a navy buffer (Nv_buff) 106 for storing the respective packs are connected.
Bit streams read out from the video buffer 103, the audio buffer 104 and the sub-picture buffer 105 are decompressed by a video decoder (Video_Decoder) 107, an audio decoder (Audio Decoder) 108 and a sub-picture decoder (Sp_Decoder) 109, respectively, thus become a form of video, audio and subtitle, and are output from the hardware 100.
Next, description is made for the software 200. A current manger 202 reads out the navy pack from the navy buffer 106, and stores it in a navy spool (Nv_spool) 203. A reproduction engine 204 reads the navy pack from the navy spool 203, and carries out control for actual data reproduction. A basic configuration of the software 200 includes the current managing part 202, the navy spool 203 and the reproduction engine 204.
The reproduction engine 204 extracts the PCI from the navy pack thus read out from the navy spool 203, and transmits it to a STC alarm registration managing part 206. The reproduction engine 204 transmits highlight information (HLI) to the STC alarm registration managing part 206 via a highlight information control part (HLI control part) 205.
VOBU_S_PTM included in the PCI is transmitted to the STC alarm registration managing part 206 from the current managing part 202. VOBU_E_PTM included in the PCI is transmitted to the STC alarm registration managing part 206 from the reproduction engine 204. HL_S_PTM, HL_E_PTM and BTN_SL_E_PTM included in the HLI are transmitted to the STC alarm registration managing part 206 from the reproduction engine 204 via the HLI control part 205.
The STC alarm registration managing part 206 registers the received data, i.e., time information included in the PCI, that is, VOBU_S_PTM, VOBU_E_PTM, HL_S_PTM, HL_E_PTM and BTN_SL_PTM in a system clock (STC) 201 in the ascending order. The STC 201 starts time measurement simultaneously upon a start of data reproduction, and, when a registered time has been reached, the STC 201 notifies the reproduction engine 204 and the HLI control part 205 of an alarm.
FIGS. 3 and 4 are a flow chart showing one example of operation of the data decoding device. Here, description is made paying attention to the respective buffers and the navy pack. In Step S1, it is determined whether or not the track buffer 101 has a free storage space.
When a free storage space exists (Yes in Step S1), a VBO request is issued in Step S2, and, in Step S3, VOB is transferred from the DVD disk 10 to the track buffer 101. When there is no free storage space (No in Step S1), Step S4 is executed, and thus, issuance of the VOB request is stopped.
Then in Step S5, it is determined whether or not any one of the video buffer 103, the audio buffer 104, the sub-picture buffer 105 and the navy buffer 106 has no more free storage space.
When all of the above-mentioned four buffers still have free storage spaces (No in Step S6), Step S5 is executed in which VOBU is input to the demux 102 from the track buffer 101. When any one of the four buffers has no more free storage space (Yes in Step S6), Step S7 is carried out in which input of VOBU to the demux 102 is stopped. That is, when any one of the four buffers has no more free storage space, input of VOBU is stopped also with respect to other buffers still having free storage spaces.
Then, Step S8 is repeated until the navy packs are stored in the navy buffer 106 (No in Step S8). When the navy packs are stored in the navy buffer 106 (Yes in Step S8), the current managing part 202 is notified of a navy pack writing finish notification. In Step S9, the current managing part 202 obtains the navy pack from the navy buffer 106 via a host interface (Host I/F) part 110.
Then, in Step S10, the current managing part 202 stores the navy pack thus obtained from the navy buffer 106, in the navy spool 203. As long as any free storage space exists in the navy spool 203 (No in Step S11), the current managing part 202 repeats the processing of Steps S8 through S11, and stores the navy pack obtained from the navy buffer 106, in the navy spool 203 repetitively.
When the navy spool 203 has no more free storage space (Yes in Step S11), the current managing part 202 executes Step S12, and thus, registers VOBU_S_PTM(0) in the STC alarm registration managing part 206 in prior to other parameters. Then in Step S13, the reproduction engine 204 obtains the first navy pack Nv_pck(0) from the navy spool 203.
In Step S14, the reproduction engine 204 extracts HLI from the navy pack Nv_pck(0), and transmits it to the HLI control part 205. In Step S15, the reproduction engine 204 registers VOBU_E_PTM(0) in the STC alarm registration managing part 206.
In Step S16, the HLI control part 205 registers HL_S_PTM(0), HL_E_PTM(0) and BTN_SL_E_PTM(0) in the STC alarm registration managing part 206.
In the processing so far, reproduction preparation for the first navy pack Nv_pck(0) is completed. The processing of Steps S12 through S16 is called ‘reproduction standby’. In Step S17, processing of Step S17 is repeated until it is determined that reproduction is started (Yes in Step S17). When it is determined that reproduction is started (Yes in Step S17), decoding of the bit streams stored in the video buffer 103, the audio buffer 104 and the sub-picture buffer 105 is started. In Step S19, the STC 201 starts counting.
In Step S20, the current managing part 202 registers VOBU_S_PTM(1) in the STC alarm registration managing part 206. In Step S21, processing of Step S21 is repeated until a reproduction start time VOBU_S_PTM(1) for the second navy pack Nv_pck(1) is reached (No in Step S21).
After that, a time has elapsed and thus, the reproduction start time VOBU_S_PTM(1) for the second navy pack Nv_pck(1) has been reached, the STC 201 executes Step S22, and thus, it notifies the reproduction engine 204 and the HLI control part 205 of an alarm. In Step S23, the reproduction engine 204 then obtains the second navy pack Nv_pck(1) from the navy spool 203.
In Step S24, the reproduction engine 204 extracts HLI from the second navy pack Nv_pck(1) and transmits it to the HLI control part 205. In Step S25, the reproduction engine 204 registers VOBU_E_PTM(1) in the STC alarm registering managing part 206.
In Step S26, the HLI control part 205 registers HL_S_PTM(1), HL_E_PTM(1) and BTN_SL_E_PTM(1) in the STC alarm registration managing part 206. In Step S27, it is determined whether or not reproduction is still continued. When it is determined that reproduction is continued (Yes in Step S27), the processing of Steps S20 through S26 is carried out for the subsequent navy pack. That is, as a result of the processing of Steps S20 through S27 is repeated, data reproduction from the DVD disk is carried out.
On the other hand, when it is determined that reproduction is no more continued (No in Step S27), decoding of the bit streams stored in the video buffer 103, audio buffer 104 and the sub-picture buffer 105 is stopped. Then in Step S29, the STC 201 stops counting, and holds the current count value.